layui.use(['form','layer','table','qsform'],function(){
    var $ = layui.jquery,
        table = layui.table,
        form = layui.form,
        qsform = layui.qsform;
    // 文章列表
    var tableIns = table.render({
        elem: '#articleList',
        url : '../../articles/',
        method:'GET',
        cellMinWidth : 95,
        page : true,
        height : 'full-125',
        limit : 10,	// 注意：请务必确保 limit 参数（默认：10）是与你服务端限定的数据条数一致
        limits : [10,15,20,25],	// 分页选择
        id : 'articleListTable',
        cols : [[
            {type: 'checkbox', fixed:'left', width:50},
            {field: 'title', title: '标题', width:350},
            {field: 'isPublic', title: '是否公开', align:'center', templet: function(d){
                    return '<input type="checkbox" name="status" lay-filter="isPublic" '
                        +'lay-skin="switch" lay-text="公开|隐藏" '+(d.isPublic==1?"checked":"")
                        +' qs-id='+d.id+'>';
                }},
            {field: 'status', title: '状态', align:'center', templet: function(d){
                    return '<input type="checkbox" name="status" lay-filter="articleStatus" '
                        +'lay-skin="switch" lay-text="正常|失效" '+(d.status==1?"checked":"")
                        +' qs-id='+d.id+'>';
                }},
            {title: '操作', width:200, templet:'#articleListBar',fixed:'right',align:'center'}
        ]]
    });

    // 是否失效
    form.on('switch(articleStatus)', function(data){
        var index = layer.msg('修改中，请稍候',{icon: 16,time:false,shade:0.8});
        setTimeout(function(){
            layer.close(index);
            if(data.elem.checked){
                updateStatus(data.elem.attributes["qs-id"].value, 'status', 1);
                layer.msg("置顶成功！");
            }else{
                updateStatus(data.elem.attributes["qs-id"].value, 'status', 0);
                layer.msg("取消置顶成功！");
            }
        },500);
    })

    // 是否公开
    form.on('switch(isPublic)', function (data) {
        var index = layer.msg('修改中，请稍候',{icon: 16,time:false,shade:0.8});
        setTimeout(function(){
            layer.close(index);
            if(data.elem.checked){
                updateStatus(data.elem.attributes["qs-id"].value, 'isPublic', 1);
                layer.msg("公开成功！");
            }else{
                updateStatus(data.elem.attributes["qs-id"].value, 'isPublic',0);
                layer.msg("隐藏成功！");
            }
        },500);
    });

    // 更新状态方法
    function updateStatus(id, fieldName, val){
        var jsonDate = {};
        jsonDate.id = id;
        jsonDate[fieldName] = val;
        $.ajax({
            url : "../../articles/",
            type : "PUT",
            async : false,
            data : jsonDate
        });
    }

    // 添加角色
    $(".addArticles_btn").click(function(){
        operateArticle();
    })

    // 列表操作
    table.on('tool(articleList)', function(obj){
        var layEvent = obj.event,
            data = obj.data;
        if(layEvent === 'edit'){ // 编辑
            operateArticle(data);
        } else if(layEvent === 'del'){ // 删除
            layer.confirm('确定删除此文章？',{icon:3, title:'提示信息'},function(index){
                $.ajax({
                    url : "../../articles/"+data.id,
                    type : "DELETE",
                    success : function(data) {
                        tableIns.reload();
                        layer.close(index);
                    }
                });
            });
        } else if(layEvent === 'look'){ // 预览
            layer.alert("此功能需要前台展示，实际开发中传入对应的必要参数进行文章内容页面访问")
        }
    });

    // 角色的操作（新增、修改）
    function operateArticle(articleObj){
        var index = layui.layer.open({
            title : articleObj ? "编辑文章" : "添加文章",
            type : 2,
            content : "articleAdd.html",
//            btn: ['提交', '关闭'],
//            yes: function(index, layero){
//                //按钮【按钮一】的回调
//            },
//            btn2: function(index, layero){
//                //按钮【按钮二】的回调
//                //return false 开启该代码可禁止点击该按钮关闭
//            },
//            cancel: function(){
//                //右上角关闭回调
//                //return false 开启该代码可禁止点击该按钮关闭
//            },
//            btnAlign: 'c',
            success : function(layero, index){
                var body = layui.layer.getChildFrame('body', index);
                if(articleObj){
                    qsform.setDataByQsName(body, articleObj);
                    // ueditor 展示
                    body.find("textarea[id='content'][qs-name='content']").innerHTML = articleObj['content'];
                    form.render();
                }
            }
        });
        layui.layer.full(index);
        /*        // 改变窗口大小时，重置弹窗的宽高，防止超出可视区域（如F12调出debug的操作）
                $(window).on("resize",function(){
                    layui.layer.full(index);
                })*/
    }

    // 检索功能
    $(".search_btn").on("click",function(){
        table.reload("articleListTable",{
            page: {
                curr: 1 // 重新从第1页开始
            },
            where: {
                title: $(".searchVal").val()  // 搜索关键字
            }
        })
    });
});